The present invention relates generally to storage systems, and more specifically to storage systems having more than one physical disk configured as one logical disk.
Redundant Array of Independent Disks (RAID) is a well-known technology that permits increased availability of data and also increased input/output (I/O) performance. In RAID storage systems, several physical disk drives are configured as one logical disk drive, and I/O requests to the logical disk drive are distributed within the storage system to the physical disk drives and processed in parallel. RAID technology provides many benefits. For example, a RAID storage system can accommodate very large file systems. Thus, large files and many files can be stored in one file system, as opposed to dividing them into several smaller file systems. Additionally, RAID technology can provide increased I/O performance because data on different physical disks can be accessed in parallel. Moreover, RAID technology can provide increased reliability and fault tolerance. For example, data on one of the physical disks (or information that can be used to reconstruct the data) can be stored on one or more of the other physical disks. Thus, if one of the physical disks of a RAID storage system fails, the data on the failed disk can be retrieved from (or reconstructed from information on) one or more of the other physical disks.
But this technology has a restriction that once physical disk drives are configured as a logical disk drive with some number of physical disk drives, it is difficult to increase the number of the physical disk drives to, for example, increase storage capacity of the logical disk or to increase parallelism of I/O processing.
For example, consider the RAID level 0 (RAID0) data allocation technique in which data is striped among the physical disk drives. With a logical disk comprising four physical disks A, B, C, and D, and with a stripe size of one megabyte, physical disk A would store the 1st, 5th, 9th, etc., megabytes of data. Physical disk B would store the 2nd, 6th, 10th, etc., megabytes of data. Physical disk C would store the 3rd, 7th, 11th, etc., megabytes of data. And, physical disk D would store the 4th, 8th, 12th, etc., megabytes of data. If it is desired to add a fifth physical disk E, then data on physical disks A, B, C, and D must be reallocated. For example, the 5th megabyte of data would need to be copied from physical disk A to physical disk E, the 6th megabyte of data copied from physical disk B to physical disk A, and so on. Thus, when adding a physical disk to the logical disk configuration, large amounts of data must be moved among the physical disk drives. Such data movement takes a long time and consumes processing power of the storage system, decreasing the I/O performance of the storage system.
Additionally, current storage systems do not utilize disk capacity efficiently. For example, with the RAID level 1 (RAID1) technique, data on one physical disk drive is mirrored on another physical disk drive. When an I/O request to read data from the logical disk drive is issued, the requested data can be read from either of the physical disk drives. In order to balance the I/O load of the storage system, the physical disk drive processing the lower number of I/O requests responds to the request. I/O performance of the storage system increases in proportion to the number of physical disk drives. But making multiple copies of all the data doesn""t use disk capacity efficiently. For instance, data that is rarely accessed is copied among a plurality of physical disks along with frequently accessed data. The copying of rarely accessed data increases I/O performance only slightly, while consuming disk capacity.
In one embodiment according the present invention, a method of reallocating data among physical disks corresponding to a logical disk is provided. The method comprises partitioning a logical disk into a plurality of groups, each group comprising at least one segment on at least one of a first plurality of physical disks corresponding to the logical disk. The method also comprises partitioning one group of the plurality of groups into a plurality of sub-groups, and, for each sub-group of the plurality of sub-groups but one, copying the sub-group to at least one segment on at least one of a second plurality of physical disks corresponding to the logical disk.
In another embodiment, a storage device is provided. The storage device includes a first plurality of physical disks corresponding to a logical disk, wherein the logical disk is partitioned into a plurality of groups, each group comprising at least one segment on at least one of the first plurality of physical disks, and at least a second physical disk corresponding to the logical disk. Additionally, the storage device includes a processor, coupled with the first plurality of physical disks and with the at least a second physical disk. The processor is configured to partition one group of the plurality of groups into a plurality of sub-groups, and, for each sub-group of the plurality of sub-groups but one, copy the sub-group to at least one segment on the at least a second physical disk. The storage device further includes a disk controller, coupled with a first memory, with the first plurality of physical disks and with the at least a second physical disk, and coupled to receive I/O requests for the logical disk from at least one host computer. The disk controller is configured to determine one or more of the physical disks of the first plurality of physical disks and the at least a second physical disk to which an I/O request corresponds, and perform the requested I/O to the determined one or more of the physical disks.
In yet another embodiment, a method of reallocating data among physical disks corresponding to a logical disk is provided. The method comprises partitioning a logical disk into a plurality of groups, wherein each group comprises a plurality of segments on at least one of a first plurality of physical disks corresponding to the logical disk. The method also comprises determining a most frequently accessed group of the plurality of groups, and partitioning the most frequently accessed group into a plurality of sub-groups, including partitioning each segment of the plurality of segments comprising the most frequently accessed group into a plurality of sub-segments, wherein each sub-group comprises at least one sub-segment. Additionally, the method comprises, for each sub-group of the plurality of sub-groups but one, allocating at least one segment on at least one of a second plurality of physical disks corresponding to the logical disk, each segment on the second plurality of disks corresponding to the at least one sub-segment comprising the sub-group. The method further comprises, for each sub-group of the plurality of sub-groups but the one, copying the corresponding at least one sub-segment to the corresponding at least one segment on the at least one of the second plurality of physical disks.
In still another embodiment, a storage device is provided. The storage device includes a first plurality of physical disks corresponding to a logical disk, wherein the logical disk is partitioned into a plurality of groups, each group comprising at least one segment on at least one of the first plurality of physical disks, and at least a second physical disk corresponding to the logical disk. The storage device additionally includes a processor, coupled with the first plurality of physical disks and with the at least a second physical disk. The processor is configured to partition one group of the plurality of groups into a plurality of sub-groups, and, for each sub-group of the plurality of sub-groups but one, copy the sub-group to at least one segment on the at least a second physical disk.
Numerous advantages or benefits are achieved by way of the present invention over conventional techniques. In a specific embodiment, the present invention provides improved I/O efficiency without sacrificing disk capacity. Also, in some embodiments, data in a storage system can be reconfigured among a greater number of physical disks without decreasing I/O performance during the reconfiguration. One or more of these advantages may be present depending upon the embodiment.
These and other features and advantages of the present invention will be better understood with reference to the detailed description below and the accompanying diagrams.